package cn.itcast.dao;

import cn.itcast.entity.OrderQueryPageBean;
import cn.itcast.entity.QueryPageBean;
import cn.itcast.pojo.Address;
import cn.itcast.pojo.Order;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import org.aspectj.weaver.ast.Or;


public interface OrderListDao {

    /**
     * 查询所有预约的人
     * @return
     */
    Page<Order> orderFindAll(String queryString);

    /**
     * 根据条件查询
     * @param
     * @return
     */
    Page<Order> orderFindAllCondition(@Param("idCard")String idCard,@Param("phoneNumber")String phoneNumber,@Param("name")String name,@Param("minTime")String minTime,@Param("maxTime")String maxTime,@Param("orderType")String orderType,@Param("payStatus")Integer payStatus);

    /**
     * 添加预约用户信息
     * @param order
     */
    void saveOrder(Order order);

    /**
     * 根据用户手机号查询会员id
     * @param phoneNumber
     * @return
     */
    Integer queryMemberById (@Param("phoneNumber")String phoneNumber);

    /**
     * 根据用户预约表id查询paylog表，判断用户是否支付
     * @param id
     * @return
     */
    Integer queryPayLog(String id);

    /**
     * 根据用户id查询详细信息
     * @param id
     * @return
     */
    Order queryOrderById(String id);

    /**
     * 根据用户手机号和身份证，判断用户是否预约过，多次预约会覆盖
     * @param phoneNumber
     * @param idCard
     * @return
     */
    Order queryQrderByPhoneINidCard(String phoneNumber,String idCard);

    /**
     * 修改用户个人信息
     * @param order
     */
    void updateOrder(Order order);

    /**
     * 根据用户id更改就诊状态
     * @param id
     * @param arrival
     */
    Boolean updateOrderArrival(@Param("id")String id,@Param("arrival")Integer arrival);

    /**
     * 根据地址id查询到地址详细信息
     * @param addressId
     * @return
     */
    Address queryAddressById(Integer addressId);


}
